refactor: Fix some small issues, add -h/-help flag#145
refactor: Fix some small issues, add -h/-help flag#145alxmcp wants to merge 3 commits intocacggghp:mainfrom
-h/-help flag#145Conversation
|
Спасибо, но мне кажется код ещё сложнее стал... Раз уж рефакторить, может как-то сделать код более простым, читаемым, линейным? Чтобы было понятно что зачем вызывает. Мне кажется там много лишних функций вообще. |
|
Почему сложнее? Стало больше строк, но он стал читаемее. Местами более scalable. Наверное только комментариев не хватает, что сделает код ещё больше. Тут много кода - это тесты. На них можно не смотреть вообще, если не заниматься разработкой. Для чего тесты?Они нужны, чтобы проверять работоспособность и для проверки регресса в случае чего. Мы пишем тесты, которые имитируют и подтверждают то или иное действие, а потом в следующие разы обновляем код и если тест падает, значит мы что-то сделали не так, упустить что что-то сделано не так - легко. Это не редкость работая над одним блоком кода, иногда ломается другое и тесты как раз помогают новым разработчикам лучше понимать, а для чего нужен был изначально тот или иной блок. Например мы недавно удалили прямое подключение Вместо старого метода используется диспатчер, который упрощает флоу и помогает с маскировкой в том числе, что делает код более scalable. В последующие разы можно будет локально вносить правки, потому что фундамент заложен. Например, как недавний PR с локальными правками для уплотнения имитация человека, чтобы не детектил бота. Для возвращения no dtls нужно добавить ещё новый метод, ну если он действительно нужен. Второе это проброс контекста и отдельный cliutil как раз для читаемости, cliutil сам маленький. Но именно флаги у клиента и сервер разные, поэтому так. Плюс дополнительный код для help меню, вместо паники, чтобы пользователи видели более понятное что-то - какие флаги можно использовать. В северном коде дублирование лишнее вынесено. Как раз стало более читаемым. В клиенте были замечены логические ошибки, которые у некоторых людей судя по их словам выскакивают то тут, то там, этот PR (точнее предыдущий с DC режимами) исправил их ещё до того, как о них начали писать. Ну это не полноценный рефакторинг, а локальный. Эти большие god файлы main так и остаются довольно большими. Любой рефакторинг может поломать что-то конечно. Но даже если замерджить сейчас, то тут нет коммитов с feat, fix, break, а значит не будет релиза. И пока нет релиза можно у себя локально собрать и потестировать. Думаю, что лучший рефакторинг на данный момент будет решение сделать библиотеку из кода, как в соседнем PR. Я не берусь за это потому что пока нет ресурсов тестировать как библиотеку, а во-вторых, кто-то уже уделил на это внимание, может этот товарищ и доделает с последними изменениями в коде. |
|
Плюс этот PR решает фейлы в GitHub Actions из-за golangci. А ещё недавно писали про то, что бинариники винды определяются, как вирусы в VirusTotal. Я прокомментировал, что это непредсказуемое и ложное поведение, но в моём форке бинаринки винды не определяются, как вирус. Этот маленький PR исправляет очень немало вещей на самом деле. |
No description provided.